var express = require('express');
var app = express();
var fortunes = require('./lib/fortune.js');
// 端口
app.set('port', process.env.PORT || 3000);

// 视图引擎
var handlebars = require('express3-handlebars').create({ defaultLayout: 'main'});
app.engine('handlebars', handlebars.engine);
app.set('view engine','handlebars');

// 静态文件
app.use(express.static(__dirname + '/public'));

// 测试
app.use(function(req, res, next){
    res.locals.showTests = app.get('env') !== 'production' && req.query.test === '1';
    next();
})

app.get('/',function (req, res) {
    // res.type('text/plain');
    // res.send('home page');
    res.render('home');
})

app.get('/about',function (req, res) {
    // res.type('text/plain');
    // res.send('about page');
    res.render('about', {
        fortune: fortunes.getFortune(),
        pageTestScript: '/qa/tests-about.js'
    });
})

// 404 
app.use(function(req,res){
    res.status(404);
    res.render('404');
    // res.type('text/plain');
    // res.send('404 - Not Found');
})

// 500
app.use(function (err, req, res, next) {
    console.error(err.stack);
    res.status(500);
    res.render('500');
    res.type('text/plain');
    res.send('500 - Server Error');
})

app.listen(app.get('port'), function(){
    console.log('Express started on http://localhost:' + app.get('port') + '; press Ctrl-C to terminate.');
})